package com.cs.beneficios.web.action;
import com.cs.beneficios.business.entity.VflexDAO;
import com.cs.beneficios.business.model.ValorFlexibleVO;
import com.cs.beneficios.common.ConnectionFactory;
import com.cs.beneficios.common.entity.Consultas;
//import com.cs.beneficios.web.form.ActualizarDominioForm;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
//import org.apache.struts.action.ActionError;
//import org.apache.struts.action.ActionErrors;
import java.io.IOException;
import javax.servlet.ServletException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import com.cs.paoyer.administration.business.model.UserVO;

public class ModificarValorFlexAction extends Action 
{
  /**
   * This is the main action called from the Struts framework.
   * @param mapping The ActionMapping used to select this instance.
   * @param form The optional ActionForm bean for this request.
   * @param request The HTTP Request we are processing.
   * @param response The HTTP Response we are processing.
   * @return 
   * @throws java.io.IOException
   * @throws javax.servlet.ServletException
   */
  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
  {
    //ConnectionFactory cf = new ConnectionFactory("beneficios","beneficios");
	ConnectionFactory cf = new ConnectionFactory();
    Consultas objCons = new Consultas(cf);
    try{
      String VigenciaVFL;
      HttpSession session = request.getSession();
      //Proceso para la auditoria
       UserVO user = (UserVO) request.getSession().getAttribute("userInfo");
       String terminalAddress = request.getRemoteAddr();
       String strTerminal = ("WEB="+terminalAddress);
       Calendar c = Calendar.getInstance(); 
       SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");   
      //Fin del proceso
      String CodAtri = (String)session.getAttribute("codatri");
      List listanombre = (List)session.getAttribute("listadominio");
      
      String strContador = (String)session.getAttribute("Contador");
      int iContador = 0;
      if((Object)strContador != null)
      {
        iContador = Integer.parseInt(strContador);
        iContador-=10;
      }
      String CodigoTVFL = request.getParameter("codigotvfl");
      String Descripcion = request.getParameter("descripciontvfl");
      String VigenciaTVFL = request.getParameter("vigenciatvfl");
      String Nombre = Descripcion+CodAtri;
      
      String strArrDo[] = {Nombre,Descripcion,VigenciaTVFL,user.getName(), 
                     dateFormat.format(c.getTime()),strTerminal};

      
      int ActualizaDomBien = objCons.ActualizarDominio(strArrDo,CodigoTVFL);
      
      if (VigenciaTVFL.equals("S"))
      {
        VigenciaVFL = "S";
      }else
      {
        VigenciaVFL = "N";
      }
      
      
      int tamano = listanombre.size();
      int j = 0;
      for (int i=iContador;i<tamano;i++)
      {
        j++;
        String nombre = request.getParameter("descripcionvf"+j);
        String DescripcionVfl = request.getParameter("descripcionvf"+j);
        String strCodigo= request.getParameter("codigo"+j);
        if((Object)nombre != null)
        {
          VflexDAO objVflex = new VflexDAO(cf);
          int iComparar = 0;
          try
          {
            iComparar = objVflex.SearchValorFlex(DescripcionVfl.trim(), strCodigo.trim());
            cf.closeConnection(objVflex.getConn());
          }catch(SQLException ex)
          {
			System.err.println("/******** TDSUB - cwsub");
			ex.printStackTrace();
			System.err.println("TDSSPE - cwsub ********/");
          }
          if(iComparar == 0)
          {
            ValorFlexibleVO obj= (ValorFlexibleVO)listanombre.get(i);
            String codigo = obj.getCodigovfl();  
            String NombreVfl = nombre.trim()+CodAtri;
            String strArrVFL[] = {NombreVfl.trim(),DescripcionVfl.trim(),VigenciaVFL,user.getName(), 
                          dateFormat.format(c.getTime()),strTerminal, strCodigo};
            int ActualizaVFLBien = objCons.ActualizarValorFlexible(strArrVFL,codigo);
          }
        }else
        {
          break;
        }
      } 
    }finally
    {
      try{
        cf.closeConnection(objCons.getConn());
      }catch(SQLException e)
      {
		System.err.println("/******** TDSUB - cwsub");
		e.printStackTrace();
		System.err.println("TDSSPE - cwsub ********/");
      }
    }
    return mapping.findForward("success");
  }
}